package com.lg.startertemplate.domain;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.lg.startertemplate.jpaenum.Country;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import javax.persistence.*;
import java.util.*;

/**
 * 数据库一定要避免大写(表名 字段名), 不然会有无尽的问题!!!
 *  目标:可以是 舰船 飞机 渔船等
 *
 * 1.联合主键: 多字段确定唯一一条数据
 *  110态势项目 同一时间点 和 名字 确定唯一一条信息
 *
 * 2.枚举
 *  尽量不要使用枚举,实体完全可以解决啊!!!
 *
 */
@Slf4j
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@IdClass(value = TargetKey.class)
public class Target {
    @Id
    @Column(name = "name",nullable = true,length = 35)
    private String name;

    @Id
    @Column(name = "appear_time",nullable = true)
    private Date appearTime;

    //EnumType.ORDINAL 序号;  EnumType.STRING 字符串 ;一般不适用序号,后期有新的增加 就乱序了
    @Enumerated(EnumType.STRING)
    //数据库中存的是CHINA 而非 中国  findById没有将此字段赋值,也没有在深入研究.因此尽量不要使用枚举,实体完全可以解决啊
    @Column(name = "targetCountry")
    private Country country;

    private String targetDesc;

}
